//
//  RBVoiceLinkApi.h
//  Pods
//
//  Created by baxiang on 2017/5/11.
//
//

#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN

typedef NS_ENUM(NSUInteger, RBModifyNetType) {
    RBModifyNetType_BindDevice, //绑定设备配网
    RBModifyNetType_ModifyNet,  //修改设备网络
};


@interface RBVoiceLinkApi : NSObject



/**
  打开设备声波配网功能

 @param deviceID 设备 ID
 @param netType  网络类型   RBModifyNetType_ModifyNet：修改网络，
 @param voicePath 播放的配网的音频文件
 */
+ (void)openVoiceConfigNetWithDeviceID:(NSString *_Nonnull) deviceID type:(RBModifyNetType)netType  voicePath:(NSString*)voicePath  completionBlock:(nullable void (^)(BOOL isSucceed,NSError *error)) completionBlock;



/**
 请将手机靠近布丁

 @param voicePath 播放的音频文件
 */
+ (void)playNearPudding:(NSString*)voicePath;

/**
 *  播放声波配网文件
 *
 *  @param wifiName wifi 名称
 *  @param wifiPsd   wifi 密码
 */
+ (void)playVoiceConfigNetFileWithWifiName:(NSString *_Nonnull)wifiName wifiPsd:(NSString * _Nonnull)wifiPsd;


/**
 *  获取绑定配网结果
 *
 *  @description 此接口会不断通过completionBlock 返回结果，调用此接口时需等待最后的回调，
 当 result 为 success 或 failure 时表示此次调用结束。
 *  @param completionBlock 中的参数：
 isSucceed: 绑定配网是否成功
 error：错误信息
 dict:result状态  -> wait     正在获取结果
 -> failure  失败
 -> success  成功
 msg 详情描述
 *
 */
+ (void)startGetVoiceConfigNetResultBlock:(nullable void (^)(BOOL isSucceed,NSDictionary *_Nullable dict,NSError *_Nullable error)) completionBlock;

/**
 *  获取修改网络结果
 *
 *  @description 此接口会不断通过completionBlock 返回结果，调用此接口时需等待最后的回调，
 当 result 为success 或failure 时表示此次调用结束。
 *  @param completionBlock 中的参数：
 isSucceed: 修改网络是否成功
 error：错误信息
 dict:result状态  -> wait     正在获取结果
 -> failure  失败
 -> success  成功
 msg 详情描述
 *
 */
+ (void)startGetModifyNetResultBlock:(nullable void (^)(BOOL isSucceed,NSDictionary *_Nullable dict,NSError *_Nullable error))completionBlock;

/**
 播放绑定成功设备的欢迎话语
 
 @param deviceID 设备ID
 @param completionBlock 是否成功
 */
+(void)playBackWelcomeWithDeviceID:(NSString *_Nonnull)deviceID completionBlock:(void (^_Nullable)(BOOL isSuccess, NSError *_Nullable))completionBlock;

@end
NS_ASSUME_NONNULL_END
